Everything Totally Explained


Ask & we'll explain, totally!
Forward compatibility
Totally Explained


  NEW! All the latest news in the worlds of computer gaming, entertainment, the environment,  
finance, health, politics, science, stocks & shares, technology and much, much, more.  


View this entry using RSS

Everything about Forward Compatibility totally explained

Forward compatibility (sometimes confused with extensibility) is the ability of a system to gracefully accept input intended for later versions of itself.
   The behavior expected from an older version of a forward compatible system is to gracefully handle input which is intended for a newer version, by ignoring the unknowns and selecting the known subset of the data that the system is capable of handling. Forward compatibility is harder to achieve than backward compatibility because a system needs to cope gracefully with an unknown future data format or requests for unknown future features. Backward compatibility doesn't have this issue because it accepts a known data format.
   An example of forward compatibility is a web browser ignoring the HTML tags that it doesn't (yet) recognize. It is typical for forward compatible systems to ignore unknown data or application instructions.
   Many application software systems are designed with a robust and self-sufficient systems architecture so that they can operate adequately even when input for a more advanced version is entered.
   In all cases, when the application system accepts the input data or operating system isn't as expected, it'll produce an output that will identify the problem accurately for the user.

A code example

Assume that version v0 of a program expects inputs of the form <t>X</t>, where t is an envelope containing some data X. Version v1 requires some extra functionality and thus it's also able to accept inputs of the form <s>X</s>, where s is a specialization of t. Now v0 can't read the input <s>X</s>, since v0 has no knowledge that s can be treated as t. It would appear that since s is a specialization of t, the new input could have been coded as <t type="s">X</t> where the ‘type’ attribute denotes the specialized nature. This is indeed a better form of the input, but if v0 wasn’t designed to gracefully ignore the ‘type’ attribute, this won’t present forward-compatibility either. In fact, the design of v0 determines its forward compatibility. The choice now is simple: forward compatibility or new functionality?
   If the choice is new functionality, then we break forward compatibility. But it's important now to build into v1 the ability to gracefully treat future inputs we could foresee (for example, ignore attributes, such as "type", that the program doesn't understand).

Further Information

Get more info on 'Forward Compatibility'.


External Link Exchanges

Do you know how hard it is to get a link from a large encyclopaedia? Well we're different and will prove it. To get a link from us just add the following HTML to your site on a relevant page:

    <a href="http://forward_compatibility.totallyexplained.com">Forward compatibility Totally Explained</a>

Then simply click through this link from your web page. Our crawlers will verify your link, extract the title of your web page and instantly add a link back to it. If you like you can remove the words Totally Explained and embed the link in article text.
   As long as your link remains in place, we'll keep our link to you right here. Please play fair - our crawlers are watching. Your site must be closely related to this one's topic. Any kind of spamming, dubious practises or removing the link will result in your link from us being dropped and, potentially, your whole site being banned.



Copyright © 2007-8 totallyexplained.com | Licensed under the GNU Free Documentation License | Site Map
This article contains text from the Wikipedia article Forward compatibility (History) and is released under the GFDL | RSS Version